package com.lq.util;

import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
import java.util.Base64;

public class MD5Util {
    public static String digest(String content){
        //经典操作放在try外面
        MessageDigest md5 = null;
        try {
            //设置md5算法
            md5 = MessageDigest.getInstance("MD5");
        } catch (NoSuchAlgorithmException e) {
            e.printStackTrace();
        }
        //将输入的字符串先转化成二进制，再进展md5加密
        byte[] digest = md5.digest(content.getBytes());

        //获取base64加密算法，对md5加密后的二进制进行base64再加密，使得再数据库中显示不至于乱码
        //注意base64是可以破解的，但是md5不可破解（并且我们还进行了加盐，防止通过hash表进行反查询）
        Base64.Encoder encoder = Base64.getEncoder();
        byte[] encode = encoder.encode(digest);

        //最后转化成字符串
        return new String(encode);
    }
}
